package jichenglei.kelong;

import java.util.ArrayList;
import java.util.List;
/**
 * 
 * @author Jin Jing
 * 可克隆类一定要实现Cloneable接口（clone方法），否则报CloneNotSupportedException。
 * 
 * 若有集合，则要注意克隆是否重写（默认只是复制引用）。
 * 
 * 一定要记得些super.clone()。
 * 
 * clone并不被看做一个构造过程，因此要警惕只在构造函数中被设置的空final域（若想改值，不行，这不是显然的么？）
 * 
 */
public class Test implements Cloneable{

	public List<String> strs;
	
	Test() {
		strs = new ArrayList<String>();
		strs.add("abc");
		strs.add("def");
	}
	
	public Object clone() throws CloneNotSupportedException {
		return super.clone();
	}
	
	public static void main(String[] args) throws CloneNotSupportedException {
		Test test = new Test();
		Test test2 = (Test) test.clone();
		
		System.out.println(test2.strs.get(0));
		test.strs.set(0, "xyz");
		System.out.println(test2.strs.get(0));
		

	}

}
